Page modification method in a printer subsystem of the partial page buffer composing type

ABSTRACT

A page modification method in a printer subsystem of the partial page buffer composing type. A printer subsystem receives a packet containing a page of characters, coded overlays/elisions, and combining data from an external source. The packet is translated into a linked list of character placement representations for each of the doubly indexed coded characters within the page. Elisions from the page are made by inhibiting the formation of a linked list segment for each character sequence within elision markers set out in the page. In contrast, coded character overlays are appended to the list as addenda. The list governs the placement of characters into a partial page buffer, whose contents are system accessible in row major order.

FIELD OF THE INVENTION

This invention relates to page modification methods for use in a printersubsystem making detectably dissimilar variations of a base page.

BACKGROUND ART

Morley, U.S. Pat. No. 3,959,776, issued May 25, 1976, disclosed a methodand apparatus for printing locally stored formatted messages in whichfetch commands were embedded in the format. Upon a given format beingselected, the embedded commands were excised therefrom and executedagainst a stream of external supplied variable characters, whichcharacters were then inserted within a message prior to printing.

Line-at-a-time printers are exemplified by Findley, U.S. Pat. No.4,031,519, issued June 21, 1977 in which copies of a formatted page aremodified by way of pre-stored character additions and delections locallywithin the printer. More particularly, characters assembled into a pagewithin a whole page buffer can be repeatedly used to print the same pagewith slight changes in the different copies. Modification data isexternally transmitted to the printer and buffer stored. As each line ofthe printer is readied for entry into the printing cycle, parts of themodification data indicating the copy number, line number, and printposition of changes to be made are compared with the printer counterpartdata. Changes are made where necessary by using new data from themodification data to replace the old data in the line to be printed. Newdata may include one or more blank characters. Blank characters are usedto suppress data in the corresponding parts of the line to be printed.

Belleson et al, U.S. Pat. No. 4,300,206, "Flexible Test and ImageGenerator for a Raster Printer", issued Nov. 10, 1981, discloses ascrolling buffer of less than full page capacity into which doublyindexed characters are written in print serial order. A print read headis also depicted which asynchronously accesses the buffered charactersat addresses suitably off set, also in print serial order, forimprinting on an advanceable print paper medium.

Many printers use a page size buffer within which they electronicallyassemble the characters which are subsequently read out by a print readhead. Under these circumstances, it is not material in what arbitrarysequence the indexed characters are applied to the buffer. Since thebuffer is usually a full page all points addressable RAM, the indicesdefining row and column starting address positions can be immediatelyused to write the character raster pattern into the buffer. However,where the buffer is constrained to substantially less than full pagecapacity, then a scrolling mode of writing into and reading thecharacters from the buffer must be used. To write into a scrollingbuffer requires creation of a sorted order of characters prior to thewriting.

As is also known from the Belleson patent, fonts of characters as rastersubarrays are locally stored at the printer. A character sequence from aremote source to the printer subsystem includes indication of the fontand a succession of code points corresponding to the characters. Thedata construct used by Belleson to represent this sorted order prior tobuffer writing is a pair of linked lists. Indeed, the method for sortingan arbitrary sequence of doubly indexed characters into print serialorder and for writing said sorted sequence into a buffer of less thanfull page capacity is the subject of a copending divisional applicationU.S. Ser. No. 06/241,321, filed Mar. 6, 1981 of the now issued Bellesonpatent.

The character received by the printing subsystem can be in the form of acode point and an ordered pair of numbers (indices) connoting row andcolumn positions on a page. Writing of a character is generally theprocess of fetching a counterpart raster pattern from a local font storeand writing it into a designated location defined by the indices withinthe buffer. These aspects are described more fully in the followingportions of the specification or with reference to the Belleson patentand copending divisional application.

According to Belleson, the aforementioned linked lists are formed fromsorting the received characters at the printing subsystem into groupsaccording to their row index and then forming a threaded list of thecharacters in each group according to their column position. Printserial order is then represented by traversing the sequence defined bythe lists.

THE INVENTION

The technical problem solved by this invention is the generation ofdistinct versions of a common (base) page of characters by amending thebase page according to predesignated overlays and/or elisions. Eachversion (copy group) may use some or none of the overlays and elisions(character suppressions) specified for other versions or copy groups.The general inventive thought is that the amendatory information can betranslated into addenda to the linked lists defining the page andprocessed in the same manner as heretofore shown in the art.

More particularly, the invention is directed to a method for pagemodification in a printer subsystem of the partial page composing typeto which is applied a stream of characters consisting of a formattedpage, a set of overlays, and a copy control segment. The overlay setincludes overlays consisting of coded characters to be selectively addedto a base page. A base page may contain strings of coded charactersdelimited by suppresssion identifiers for selectively deletingcharacters from the base page. Each copy control segment defines copygroups and a concordance of copy group, including number of copies,overlay set and suppression set. A core page is a reduced base page,i.e., base page absent overlays and suppressible data.

The method steps of the invention comprise (a) forming a linked list ofcharacter placement on the core page as the character stream is appliedto the printer externally; (b) duplicating a preselected portion of thelinked list for each copy group defined by the copy control segment; (c)forming a linked list addendum for each copy group of its counterpartset of character additions and suppressions; and (d) executing thelinked list and the addenda in the printer subsystem, said executingstep, includes the steps of placing characters in a buffer in theposition and order determined by the linked list whereby the partiallycomposed page is available for print serial reading.

The linked list is formed from the random arrival double indexedcharacters, and which comprises a scan table and a character table.However, only the scan table (row index of character placement) isduplicated. Also, the base page includes marks bounding each excisablecharacter stream while the copy control segment includes counterpartidentifiers.

The printer subsystem receives a stream of characters and embeddedcontrols from a CPU driven channel illustratively formatted as follows:BO1(BEGIN OVERLAY 1), WT(WRITE TEXT), . . . , EP(END PAGE); . . . BO2,WT, . . . , EP; LCC(LOAD COPY CONTROL); BP(BEGIN PAGE), WT, . . . EP.The coded overlays (BO . . . EP) are each defined in the characterstream prior to the base page (BP . . . EP). The embedded controls andparameters found in LCC correlate each base page and copy group with acounterpart set of overlays and suppressions. The LCC parameters areapplied to each following base page until the LCC is replaced.Illustratively, each base page may have a copy group of 50 copies of thebase page with no changes, a second copy group of 1,000 copies withoverlay number 1, a third copy group of 500 copies with overlay number 2and suppression 5. While the overlays are defined prior to the basepage, character suppression requires marks bounding each excisablecharacter stream in each base page. Likewise, the suppression marks arepaired with identifiers in the LCC.

Where a page is being modified by suppression, the method steps include(1) at base page time, suppressing all fields to form the core page; and(2) at end page time, selectively restoring suppressed data not named inthe counterpart copy group being executed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts the relation among copy groups, base and core pages, andoverlays.

FIG. 2 depicts for each copy group the linked list addenda to the listdefining the core page.

DESCRIPTION OF THE PREFERRED EMBODIMENT AND INDUSTRIAL APPLICABILITYAspects of Partial Page Composing for a Raster Printer

The co-pending Belleson patent applications describe a machineimplementable method for composing a partial page during a portion of araster page printing cycle. During page composing, a linked listrepresentation of the placement position of each character as receivedfrom a channel is formed. That is, each character and its attributes,such as size, font, orientation, and position order is examined as partof its input processing. As each new font is encountered, counterpartraster subarray dot patterns are obtained from local memory. Theseraster dot patterns are written into a RAM type raster pattern memory(RPM). As each test character is encountered, an entry is made into thelinked list preserving the position and identity of the character in theelectronic page. After the list has been compiled, its contents are usedto control the movement of selected subarrays from the RPM forplacement, a full subarray at a time, into a partial page buffer. Thereading and writing of information into the partial page buffer ismanaged asynchronously. Signficantly, the reading of data from thepartial page buffer is sequential in consecutive raster scan lines. Theasynchronism is described in Yu, Vol. 23 of the IBM Technical DisclosureBulletin at page 1217, published in August, 1980. The Yu method formanaging overrun and partial page buffers is to detect a displacementbetween READ and WRITE counters less than a predetermined magnitude andproviding signal indication when there exists insufficient room to writewithin a submatrix thereby avoiding overrun and decreasing collisionprobability.

The Belleson printer subsystem assures that raster patterns will behandled in starting scan line sequence when the page is being printed.Flexibility of the technique used, makes it a matter of totalindifference as to the arrival order of the characters. The printercontrol makes use of linked lists with one list for each scan line onthe page. The collection of list heads is called a scan table. The listhead for each scan line points to one of two places. It can point to thelist head for the next scan line if there are no raster patterns to beprinted starting on that scan line, or it can point to a table entry forthe most recently received pattern to start on that scan line. Thissecond table is called the character table. It contains an entry foreach character to be printed on a page ordered in the sequence thecharacters were received by the printer. The scan table is modified andcharacter table is added to the printer subsystem as each page characteris received.

The entries in the character table contain the following information.The position of the characters along the scan line is defined by thestarting pel, the size of the character is defined by the number ofscans and by a pel count, the address of the graphic character patternis provided by a raster pattern memory address, another link points tothe entry/or the next pattern starting on that scan line to be printed.The results of the page preparation process are linked within a listwhich permit all of the characters on the page to be processed bywriting into a partial page composing buffer and reading therefrom inraster scan line sequence.

Character Streams and Embedded Controls

Typically, a CPU communicates with a printer subsystem by a sequence ofcommands, contained in channel command words (CCWs), and data.Descriptions of such a system may be found in Amdahl, U.S. Pat. No.3,226,689, and the aforementioned Findley patent and Belleson U.S. Pat.No. 4,300,206 and the copending divisional of Belleson. Other patentsdescribing attachment architecture may be found in Clark, U.S. Pat. No.3,725,864, relating to input/output control and Beausoleil, U.S. Pat.No. 3,336,582. In substance, a CPU's relationship to a printer beginswhen the CPU invokes a START I/O instruction. This instruction serves toestablish a connection between the CPU and the addressed printer andleads to the execution of a series of channel commands within theprinter. The invocation of the START I/O instruction causes control tobe relinquished to a series of CCWs. The command portion of the CCWs is,in turn, sent over the channel to the printer subsystem. For the mostpart, pages are composed using multiple channel commands. The LOAD PAGEDESCRIPTION command provides initial conditions used on each succeedingpage. LOAD COPY CONTROL (LCC) CCW causes each subsequent pagetransmission to result in the printing of a specified number of copies.The copies are in groups of identical pages. Text data is transmitted bya succession of WRITE TEXT (WT) commands. Each WRITE TEXT command cantransmit up to the printer's buffer maximum of text data and embeddedcontrol codes. Additional control commands are needed for page printing.These include BEGIN PAGE (BP) and END PAGE (EP) for marking theinitiation and termination of each page of characters.

The CPU, by way of appropriate CCW sequence, communicates both pages andpage overlays to the printer subsystem. This includes initializationinformation and the text for each page to be printed. Such a sequenceotherwise described in Belleson, et al., includes in the initializationphase, a LCC, BP, WT, . . . , WT, WT, . . . EP. The LCC includes theparameters defining each version of the base page including thequantity, set of overlays, and suppressions. BP and EP are pagedelimiters.

In the invention, the event sequence includes the sending of overlaypages, the LCC, and the base page which includes the suppressioninformation. This sequence augments the previous base page onlytransmission since it requires BEGIN OVERLAY, BEGIN SUPPRESSION, and ENDSUPPRESSION delimiters. Symbolically, the sequence can be represented byBO1, . . . , WT, . . . , EP; BO2, . . . WT, . . . EP; LCC; BP: . . .text . . . BS1 . . . text . . . ES1 . . . text . . . BS2 . . . text . .. ES2 . . . text . . . BS1 . . . text . . . ES1 . . . text . . . EP. Thedelimiters BS, ES, are examples of embedded controls. Other embeddedcontrols can be used to move the current print position, change font orto draw rules. The write commands are used to construct a logical pageof test. A WT CCW transmits a data record of one or more bytes. The textdata record can consist of any string of multiple bit byte characters.Significantly, a write text command may end in the middle of an embeddedcontrol sequence. Each character in a string of write text data normallycauses a character pattern to be placed on the page and the columncoordinate of the current print position to be increased.

Begin Suppression (BS) and End Suppression (ES) controls together withthe suppression numbers in the LCC command provide a text deletioncapability similar to that described in the Findley patent. Printsuppression occurs when the BS parameter matches a print suppressionnumber that has been selected in the LCC command. From a BS controlwhose number is selected in LCC to the matching ES, no text charactersor rules are printed. However, the current print position is incrementedjust as though printing were taking place. The BS control may beembedded. Its range of effect extends from its location in the textstream to the location of the matching ES. A nesting of BS-ES pairs isnot permitted. That is, following a BS control, there may not be anyother BS or ES control preceding its terminating ES.

The BP and EP CCWs mark the beginning and end of each page of data. TheLCC is used to establish how many copies are to be printed of succeedingpages of the data set. The BP CCW is issued at the beginning of eachpage and causes the printer to change from a default reference state toa page composing state. Likewise, the EP CCW marks the end of a pageoverlay as well as that of a page. It causes the printer subsystem toreturn to its reference state.

The BO (BEGIN PAGE OVERLAY) CCW initiates a page of data which is not tobe printed but is to be stored within the printer subsystem as a pageoverlay. The overlay is later to be merged with ordinary printed pagesusing the overlay parameter of the LCC. This provides a substitute forthe preprinting on preprinted forms. In this regard, a page overlaytransmission starts with the BO CCW which causes the printer subsystemto shift from its reference state to an overlay state. As indicatedabove, the transmission may continue with one or more write typecommands and terminate with an EP CCW.

The LCC CCW transmits a variable length record defining groups ofidentical copies. With one page transmission, several differentlymodified groups of identical copies can be made. As mentioned before, aLCC CCW causes each subsequent page transmission to result in theprinting by the printing subsystem of the specified number of copies.The copies are in groups of identical pages. Each group being modifiedas specified in the LCC command.

Relations Among Copy Groups, Base and Core Pages, and Overlays

Referring now to FIG. 1, there is shown in top to bottom order oftransmission, the overlay pages, the LCC, and the base page. The bold,horizontal lines in this figure represent lines of text. The overlaypages are stored in the printer subsystem overlay store. The base page,however, is operated upon so as to excise the text between the BS and EScontrols which is stored separately in the overlay store as asuppression. The base page, less its suppressed materials, is called acore page.

As previously mentioned, the LCC defines the copy groups. In the exampleshown in FIG. 1, there are three copy groups denominated CG1, CG2, andCG3. CG1 consists of three copies, i.e., C=3. The base page is to bemodified with both overlays and one suppression. In contrast, copy group2 consists of only one copy and overlay number 2 and suppression number2. Lastly, copy group 3 consists of two copies and one overlay, and bothsuppressions. Note that overlay 1 has two blocked areas, each with aline of text used for a heading. Overlay 2 consists of a line of textrunning the width of the page. Two groups of text lines on the rightside of the page are denoted by suppression 1, while suppression 2includes a single set of text lines on the lower page left.

Inspection should reveal that each of the copy groups consists of anORing of the designated overlays and the suppressions not selected inthe LCC. For example, copy group 1 calls for both overlays. Since thecore page has three groups of text lines, and overlay 1 consists of twobordered areas, then copy group 1 includes two of the core page textgroups within the bordered areas as well as the text block in the lowerright hand corner plus the horizontal top page text required by overlay2. The first copy group requires suppression 1. It should be observedthat the base page has three blocks of short text lines on the rightside. The two delimited by suppression 1 are indeed suppressed. Thethird, unmarked block is present, as is the block in the lower leftcorner delimited by suppression 2, which is not selected in the firstcopy group. A similar analysis can be made for the remaining copygroups.

Formation of a Linked List for Placing Characters on a Composed Page

As articulated in Belleson co-pending applications with reference toFIGS. 8 through 10, 16a-c, 17a-f, there is described a method forpartially composing a formatted page in a buffer of less than pagecapacity responsive to the random arrival order of doubly indexedcharacters. The characters are sorted into groups according to a firstindex. A threaded linked list of characters in each group is formedbased on their order of arrival. The characters are then written into abuffer in the row position designated by the first index and the columnposition determined by the contents of the threaded linked list. InBelleson, the first index used with a "scan table" defined as a set ofordered entries. The position, or order, of the entry in the table isthe raster scan line number, while the contents of the entry is the nextitem to be considered for buffer loading from a print time perspective.The threaded linked list is called a "character table" or a "patternaddress table". All of the characters belonging to a group counterpartto a scan table entry are ordered according to the linking, which isdetermined by the arrival sequence. The character table entry consistsof a character pattern address, the size of the pattern, its pagelocation according to the second index, together with a pointer to thenext entry in the linked list. A current entry register defining thecurrent entry in the character table is used interactively with a scantable.

It should be appreciated that characters arrive in the stream in randomarrival order. It is the aim of the table building operation to placesuch random arrival order of characters in a print serial order. This isbrought about by the following method steps: (1) scanning the characterstream in order to identify WT commands and the page coordinate (x,ylocation) of the first character of the accompanying character string,the ordinal (y) location defining the scan table entry; (2) place thecontents of the scan table entry in the pointer field of the charactertable location called out by the current entry register, then place thecontents of the current entry register into the scan table entry; (3)placing the column location of the character, corresponding to the xcoordinate of the character, into the current character table entry; (4)move the character pattern address and the size of the character patternfrom the font index into the current character table entry; (5) updatingthe contents of the CER by unity and increment the current printposition.

The second step in the table building operation is a link buildingoperation. Furthermore, the building of linked lists is not a sortingoperation as such. Rather, it permits list following while executing(printing), to print as a group all characters starting at the sameordinal (scan) print position.

Linked List Addendum Formation

Referring now to FIG. 2, there is shown the relation among the addendaand the core page for the various copy groups. As should be appreciatedfrom the discussion in respect of FIG. 1, the "base page" stripped ofits characters to be suppressed is termed a "core page". The modifiedscan table and the addendum to be added to the core character table foreach copy group is formed from the overlay set and the suppression setdefined by the copy groups in the LOAD COPY CONTROL.

The execution of LOAD COPY CONTROL CCW functionally deletes the old copycontrol block (CCB), overlay list and suppression list. Further, itcreates a new CCB with its own overlay list and suppression list.Lastly, the LCC sets the current CCB pointer.

When a BP is detected, the printer subsystem allocates a core pagecontrol block (CPCB), sets a PCB pointer to CPCD, checks for theexistence of a CCB. Upon a WT being detected, the printer subsystemfirst builds a core scan table and core character table. The tables weresummarily described herein before and are set out in detail in theaforementioned Belleson patent. Referring to FIG. 2, the core pagecontrol block (CPCB) contains a scan table pointer. These pointers areactually to reserve memory areas which may be reassigned aftercounterpart activities have been completed.

Referring again to FIG. 2, the overlays and suppression set defined bythe copy group in the LCC are built as a two table list and added to theBST and BCT. There need be only one copy of the BCT.

When the system detects an EP channel command, the overlays andsuppression set defined for each copy group in the LCC are built as atwo table list. The process starts by copying the core page scan table.As the building process proceeds, this copy of the scan table ismodified and the addendum character table for this group is built. Thebuilding process is the same as described above except the input datacomes from the overlay store instead of from the channel buffer. First,all the overlays specified in the LCC are processed, then all thesuppressions not specified in LCC are processed. After the addendumcharacter table has been completed, the copy group is ready for printingusing the modified scan table and the addendum character table for thatgroup plus the core page character table. The core page scan table is nolonger needed after the building process for the last copy group hasbeen started.

The Management of Suppression

Suppressions are defined as variable data to appear on some copies, butnot on others. An example would be prices that might appear on somecopies of an invoice, but not appear on other copies. Therefore,suppressions are part of the variable data and are transmitted as partof the base page. They are delimited in the text stream for possibleelision. As the base page is received by the printer all suppressibledata is saved in the overlay store. Then, when the formatted page iscompleted, EP time, all suppressions not selected in LCC for that groupcan be added back to the core page to achieve the effect of suppressingthe selected passages. Thus a process of selective subtraction isconcverted into a process of mass subtraction then selective addition tothe common core.

The suppression data can be added to the overlay store because nooverlays can be added to it in the middle of a base page, between BP andEP. The need for the suppression data persists only until the completionof processing of EP, at which time all the suppressible data is deletedfrom the overlay store so the store's state is the same as it was at theBP for the base page.

The foregoing has described the method of this invention and itsconcrete implementation. It is an aspect that the core character tableneed not be replicated for each copy group because any entry in thecharacter table only points to another entry which is "higher up" in thecharacter table. Consequently, each copy group need construct only theaddendum to the character table.

It is the fan-in characteristic of the character table that is beingrelied upon to form a page for each copy group from the base charactertable and the modified character table where the base character table isreferenced and not replicated.

It is to be understood that a particular embodiment of the inventiondescribed above is merely illustrative and not restrictive of the broadinvention. Various changes in the design, structure and arrangement maybe made without departure from the spirit of the broader aspects of theinvention as defined in the appended claims.

We claim:
 1. A method for page modification and copy group control in asystem for printing text in raster form on a print medium, said systemincluding means for storing fonts of character raster patterns, a bufferof less than page capacity into which selected patterns may be written,and control means coupling the storage means and buffer for interpretinginformation applied to the system, arbitrary sequence characters aremapped into a linked list of character placement representation of apage of coded characters, said list operatively controlling the buffercharacter fill operations, the characters being buffer accessible to thesystem in row major order, characterized by the steps of:applying acharacter stream formatted to include a set of overlays and a copycontrol segment to the control means, said overlay set consisting ofcharacters to be selectively added to the page, each segment definingcopy groups and a concordance of the page, copy group, and overlaysubset; duplicating a portion of the linked list for each copy groupdefined by the segment; forming a linked list addendum for each copygroup of its counterpart overlay subset; and filling the buffer in theposition and order governed by the list and counterpart addendum as eachcopy group is processed by the control means.
 2. A method for pagemodification in a printer subsystem of the partial page buffer composingtype to which is applied a stream of characters characterized by thesteps of:applying to the subsystem a character stream consisting of aformatted page, a set of overlays, and a copy control segment, theoverlay set includes overlays consisting wholly of coded characters tobe selectively added to the formatted page, the formatted page havingmarks bounding each excisable character string therein, each segmentfurther defining copy groups, counterpart identifiers to the formattedpage marks, and a concordance of the page, copy group, and overlaysubset; forming a linked list character placement representation of theformatted page; duplicating a preselected portion of the linked list foreach copy group defined by the copy control segment; forming a linkedlist addendum for each copy group of its counterpart subset of overlays;processing the formatted page linked list for excising therefrom themark bounded character strings; and filling the partial base page bufferwith characters according to the processed linked list and the addendain the copy group order set out in the copy control segment.
 3. In thesystem for printing text in raster form on a print medium, said systemincluding means for storing fonts of character raster patterns, a bufferof less than page capacity into which selective patterns may be written,and control means coupling the storage means and buffer for interpretinginformation applied to the system, a method for the sorting of a page ofarbitrarily sequnced doubly indexed characters together with any pageamendments into print serial order and for writing the raster patternsof the sorted sequence into the buffer, the indicies of a characterdefining its counterpart row and column page position, said sortedsequence being written into the buffer so as to permit asynchronousscrollable reading thereof, the sorted sequence being represented by alinked list, traversal of the list controlling the bufferwriting,comprising the steps of:applying a sequence of characters to the controlunit, said character sequence including a full page of characters, codedoverlays and elisions, and combining data; translating the sequenceaccording to the combining data into a linked list print serialcharacter sequence page representation in which elided characters areomitted and overlay character sequences are mapped into a linked listaddendum; and writing the raster patterns of the characters into thebuffer upon traversal of the amended list and the addendum by thecontrol means.
 4. A method according to claim 3, wherein each doublyindexed character comprises a code point and indices, the code pointbeing interpreted by the control means upon traversing the linked listin order to access a counterpart subarray and subsequent writing thereofinto the buffer at a starting address defined by the indices.